package def

type SUB_TERT_TYPE int32

const (
	HS_TERT_RESTART SUB_TERT_TYPE = 0
	HS_TERT_RESUME  SUB_TERT_TYPE = 1
	HS_TERT_QUICK   SUB_TERT_TYPE = 2
)

// 合约编码
type HSInstrumentID [32]byte

// 期权类型
type HSOptionsType byte
const HS_OT_CallOptions = 'C' // 看涨(认购)
const HS_OT_PutOptions = 'P' // 看跌(认沽)

// 期权行权方式
type HSExerciseStyle byte
const HS_American_Options = 'A' // 美式期权 
const HS_European_Options = 'E' // 欧式期权

// 交易所代码
type HSExchangeID [5]byte

// 合约名字
type HSInstrumentName [32]byte

// 数量(double)
type HSVolume float64

// 数量(int64)
type HSIntVolume int64

// 个数
type HSNum64 int64

// 套利持仓号
type HSArbitPositionID [32]byte

// 腿号
type HSLegID float64

// 配置编号
type HSConfigNo float64

// 配置开关状态
type HSConfigValue [128]byte

// 期权行权类型
type HSExerciseType byte
const HS_ET_Abandon = '0' // 放弃
const HS_ET_Exec = '1' // 执行

// 价格
type HSPrice float64

// 金额
type HSBalance float64

// 序号
type HSSeqNo int64

// 日期 格式YYYYMMDD
type HSDate int32

// 消息正文
type HSMsgContent [256]byte

// 组合策略编码
type HSCombStrategyID [9]byte

// 备注
type HSRemarks [256]byte

// 买卖方向类型
type HSDirection byte
const HS_DC_Buy = '1' // 买
const HS_DC_Sell = '2' // 卖
const HS_DC_Loan = 'F' // 出借
const HS_DC_Borrow = 'G' // 借入

// 报单方向类型
type HSOrderDirection int32
const HS_OD_Buy = "1" // 买
const HS_OD_Sell = "2" // 卖					    
const HS_OD_Apply = "3" // 新股申购(包括增发、新债申购)			    
const HS_OD_MarthSecu = "4" // 配股				      
const HS_OD_PledgeIn = "7" // 质押入库		        
const HS_OD_PledgeOut = "8" // 质押出库		        
const HS_OD_Repos = "9" // 正回购				     
const HS_OD_ReverseRepos = "10" // 逆回购				     
const HS_OD_EtfSubs = "11" // ETF认购				     
const HS_OD_EtfPur = "12" // ETF申购			  	    
const HS_OD_EtfRed = "13" // ETF赎回			  	    
const HS_OD_BondCallCan = "14" // 债券回售撤销
const HS_OD_LofSubs = "16" // LOF认购			  	    
const HS_OD_LofPur = "17" // LOF申购			  	    
const HS_OD_LofRed = "18" // LOF赎回			  	    
const HS_OD_LofTrams = "19" // LOF转托管			  	    
const HS_OD_FundSplit = "20" // 分级基金拆分		      
const HS_OD_FundMerger = "21" // 分级基金合并		      
const HS_OD_FundConv = "22" // 分级基金转换		      
const HS_OD_CurrFundPur = "23" // 货币基金申购
const HS_OD_CurrFundRed = "24" // 货币基金赎回
const HS_OD_CreditBuy = "33" // 担保品买入		   	    
const HS_OD_CreditSell = "34" // 担保品卖出		   	    
const HS_OD_CollateralIn = "35" // 担保品提交			    
const HS_OD_CollateralOut = "36" // 担保品返回			    
const HS_OD_MarginBuy = "37" // 融资买入		        
const HS_OD_ShortSell = "38" // 融券卖出		        
const HS_OD_SellRepay = "39" // 卖券还款		        
const HS_OD_BuyRepay = "40" // 买券还券		        
const HS_OD_HoldRepay = "41" // 现券还券		        

// 开平标志类型
type HSOffsetFlag byte
const HS_OF_Open = '1' // 开仓
const HS_OF_Close = '2' // 平仓
const HS_OF_Delivery = '3' // 交割
const HS_OF_CloseToday = '4' // 平今仓
const HS_OF_CloseSingle = '6' // 组合单边平仓

// 组合指令方向类型
type HSCombDirection byte
const HS_CD_Comb = '1' // 组合
const HS_CD_UnComb = '2' // 拆分

// 引用
type HSRef [33]byte

// 时间 格式HHMMSSFFF
type HSTime int32

// 总耗时
type HSDurationTime int32

// 持仓类型类型
type HSPositionType byte
const HS_PT_Voluntary = '1' // 义务方
const HS_PT_Covered = '2' // 备兑方

// 锁定方向类型
type HSLockType byte
const HS_LT_Lock = '1' // 锁定
const HS_LT_Unlock = '2' // 解锁

// 报单状态类型
type HSOrderStatus byte
const HS_OS_NotReported = '0' // 未报
const HS_OS_ToBeReported = '1' // 待报
const HS_OS_Reported = '2' // 已报
const HS_OS_ReportedToBeCancel = '3' // 已报待撤
const HS_OS_PartsTradedToBeCancel = '4' // 部成待撤
const HS_OS_CanceledWithPartsTraded = '5' // 部撤
const HS_OS_Canceled = '6' // 已撤
const HS_OS_PartsTraded = '7' // 部成
const HS_OS_Traded = '8' // 已成
const HS_OS_Abandoned = '9' // 废单
const HS_OS_CancelFailed = 'D' // 撤废
const HS_OS_Confirmed = 'V' // 已确认
const HS_OS_ToBeConfirmed = 'W' // 待确认

// 错误编码
type HSErrorID int32

// 错误信息
type HSErrorMsg [256]byte

// 报单发起方类型
type HSOrderSource byte
const HS_OSRC_Personal = '0' // 个人投资者发起
const HS_OSRC_Exchange = '1' // 交易所发起
const HS_OSRC_Member = '2' // 会员发起
const HS_OSRC_Organization = '3' // 机构投资者发起
const HS_OSRC_Proprietary = '4' // 自营交易发起
const HS_OSRC_MobileServiceProvider = '5' // 流动性服务提供商发起

// 成交编码
type HSTradeID [32]byte

// 风险度
type HSRiskDegree float64

// 银行编码
type HSBankID [8]byte

// 转账类型
type HSTransferType byte
const HS_TT_BankToBroker = '1' // 银行转经纪公司
const HS_TT_BrokerToBank = '2' // 经纪公司转银行

// 银行名字 
type HSBankName [64]byte

// 转账发起方    
type HSTransferSource byte
const HS_TSRC_Broker = '0' // 经纪公司
const HS_TSRC_Bank = '1' // 银行
const HS_TSRC_Each = '2' // 互相
const HS_TSRC_Third = '3' // 第三方

// 转账状态    
type HSTransferStatus byte
const HS_TS_NotReported = '0' // 未报
const HS_TS_Reported = '1' // 已报
const HS_TS_Success = '2' // 成功
const HS_TS_Abandoned = '3' // 作废
const HS_TS_ReportedToBeCancel = '4' // 待撤
const HS_TS_Canceled = '5' // 撤销
const HS_TS_PendingReversal = '7' // 待冲正
const HS_TS_ToBeReported = 'A' // 待报
const HS_TS_Reporting = 'P' // 正报
const HS_TS_Confirmed = 'Q' // 已确认
const HS_TS_PendingConfirm = 'x' // 待确定

// 银行账号编码
type HSBankAccountID [32]byte

// 账号 
type HSAccountID [19]byte

// 客户编号
type HSUserID [32]byte

// 账单内容 
type HSBillContent [256]byte

// 投机(交易)/套保/备兑类型
type HSHedgeType byte
const HS_HT_Speculation = '0' // 投机(交易)
const HS_HT_Hedge = '1' // 套保
const HS_HT_Arbitrage = '2' // 套利
const HS_HT_MarketMaker = '3' // 做市商
const HS_HT_Covered = '4' // 备兑

// 费率
type HSRate float64

// 会话编码
type HSSessionID int32

// 用户站点信息
type HSUserStationInfo [256]byte

// 报单编号
type HSOrderSysID [32]byte

// 组合持仓编码
type HSCombPositionID [32]byte

// 密码
type HSPassword [16]byte

// Mac地址
type HSMacAddress [32]byte

// IP地址
type HSIPAddress [64]byte

// 是否需要确认帐单的标志
type HSBillConfirmFlag byte
const HS_BCF_NO = '0' // 不需要确认
const HS_BCF_YES = '1' // 需要确认

// 账单确认状态
type HSBillConfirmStatus byte
const HS_BCFD_NO = '0' // 未确认
const HS_BCFD_YES = '1' // 已确认

// 虚实度
type HSDelta float64

// 合约交易状态
type HSInstrumentTradeStatus byte
const HS_IT_Init = 'S' // 启动(开始前)
const HS_IT_CallAuction = 'C' // 集合竞价
const HS_IT_Trinding = 'T' // 连续交易
const HS_IT_Pause = 'B' // 休市
const HS_IT_Close = 'E' // 闭市
const HS_IT_ClosingCallAuction = 'U' // 收盘集合竞价
const HS_IT_Fusing = 'V' // 波动性中断
const HS_IT_Halt = 'P' // 临时停牌
const HS_IT_HaltAllDay = '1' // 全天停牌
const HS_IT_FuseToCallAuction = 'M' // 熔断(盘中集合竞价)
const HS_IT_FuseToClose = 'N' // 熔断(暂停交易至闭市)
const HS_IT_AfterCloseTrade = 'A' // 盘后交易

// 合约实时开仓限制
type HSOpenRestriction[64] byte
const HS_OR_NoLimitOpen = '0' // 不限制开仓
const HS_OR_LimitCoveredOpen = '1' // 限制备兑开仓
const HS_OR_LimitSellOpen = '2' // 限制卖出开仓
const HS_OR_LimitSellAndCovOpen = '3' // 限制卖出开仓、备兑开仓
const HS_OR_LimitBidOpen = '4' // 限制买入开仓
const HS_OR_LimitBidAndCovOpen = '5' // 限制买入开仓、备兑开仓
const HS_OR_LimitBidAndSellOpen = '6' // 限制买入开仓、卖出开仓
const HS_OR_LimitBidAndSellAndCovOpen = '7' // 限制买入开仓、备兑开仓、卖出开仓

// 合约品种类别
type HSProductID [4]byte

// 大额单边保证金算法类型
type HSMaxMarginSideAlgorithm byte
const HS_MMSA_NO = '0' // 不使用大额单边保证金算法
const HS_MMSA_YES = '1' // 使用大额单边保证金算法

// 客户姓名
type HSUserName [32]byte

// 强平原因
type HSForceCloseReason byte
const HS_FCR_NotForceClose = '0' // 非强平
const HS_FCR_LackDeposit = '1' // 资金不足
const HS_FCR_ClientOverPositionLimit = '2' // 客户超仓
const HS_FCR_NotMultiple = '4' // 持仓非整数倍
const HS_FCR_Violation = '5' // 违规
const HS_FCR_Other = '6' // 其它

// 申报标志
type HSTradingFlag byte
const HS_TF_No = '0' // 禁止申报
const HS_TF_Yes = '1' // 可以申报

// 互换标志
type HSSwapOrderFlag byte
const HS_SOF_Swap = '1' // 互换

// 密码类型
type HSPasswordType byte
const HS_PWDT_Fund = '1' // 资金密码
const HS_PWDT_Trade = '2' // 交易密码

// 报单指令
type HSOrderCommand int32
const HS_CT_Limit = "1" // 限价 
const HS_CT_LimitFOK = "2" // 限价即时全部成交否则撤销 
const HS_CT_LimitFAK = "3" // 限价任意数量即时成交剩余撤销 
const HS_CT_LimitStopLoss = "4" // 限价止损 
const HS_CT_LimitStopProfit = "5" // 限价止盈 
const HS_CT_Market = "6" // 市价 
const HS_CT_MarketFOK = "7" // 市价即时全部成交否则撤销 
const HS_CT_MarketFAK = "8" // 市价任意数量即时成交剩余撤销 
const HS_CT_MarketFAKV = "9" // 市价指定成交数量即时成交剩余撤销 
const HS_CT_MarketStopLoss = "10" // 市价止损 
const HS_CT_MarketStopProfit = "11" // 市价止盈 
const HS_CT_MarketToLimit = "12" // 市价即时成交剩余转限价 
const HS_CT_Market5FAK = "13" // 五档市价即时成交剩余撤销 
const HS_CT_Market5ToLimit = "14" // 五档市价即时成交剩余转限价 
const HS_CT_Market1ToLimit = "15" // 最优价即时成交剩余转限价 
const HS_CT_Market1FAK = "16" // 最优价即时成交剩余撤销 
const HS_CT_Market1FOK = "17" // 最优价即时全部成交否则撤销 
const HS_CT_MarketSelfToLimit = "18" // 本方最优价转限价
const HS_CT_CounterPartyBest = "19" // 对手方最优价申报
const HS_CT_LimitFAKV = "20" // 限价指定数量即时成交剩余撤销
const HS_CT_LimitPFP = "21" // 盘后固定价格

// 数字 
type HSNum int32

// 经纪公司报单编码 
type HSBrokerOrderID [32]byte

// 业务名称
type HSBusinessName [64]byte

// 投资者端应用类别
type HSUserApplicationType byte

// 投资者端应用信息
type HSUserApplicationInfo [32]byte

// 市场业务类别,目前只支持两大类现货业务与期权业务
type HSSecurityType byte

// 委托类型
type HSOrdType byte
const HS_ORT_Market = '1' // 市价 
const HS_ORT_Limit = '2' // 限价 
const HS_ORT_MarketSelf = 'U' // 本方最优

// 成交类型
type HSTrdType byte
const HS_TRD_Inside = 'S' // 卖 
const HS_TRD_Outside = 'B' // 买 
const HS_TRD_UnKnown = 'N' // 未知
const HS_TRD_Cancel = '4' // 撤单
const HS_TRD_Execute = 'F' // 普通成交

// 逐笔行情类型
type HSTransType byte
const HS_TRANS_All = '0' // 逐笔成交和逐笔委托
const HS_TRANS_Trade = '1' // 逐笔成交
const HS_TRANS_Entrust = '2' // 逐笔委托

// 合约英文名称
type HSInstrumentEngName [32]byte

// 产品类型
type HSProductType byte
const HS_PTYPE_Futures = '1' // 期货
const HS_PTYPE_OptFutu = '2' // 期货期权
const HS_PTYPE_Combination = '3' // 组合
const HS_PTYPE_Spot = '4' // 即期
const HS_PTYPE_FutuToSpot = '5' // 期转现
const HS_PTYPE_Securities = '6' // 证券
const HS_PTYPE_OptStock = '7' // 股票期权

// 币种
type HSCurrencyID byte
const HS_CID_CNY = '0' // 人民币
const HS_CID_USD = '1' // 美元
const HS_CID_HKD = '2' // 港币

// 期权行权后生成的头寸是否自动平仓标志
type HSCloseFlag byte
const HS_CF_NO = '0' // 不自动平仓
const HS_CF_YES = '1' // 自动平仓

// 组合类型
type HSCombType byte
const HS_COMBT_PT = '0' // 普通
const HS_COMBT_KQ = '1' // 跨期
const HS_COMBT_KPZ = '2' // 跨品种

// 风险等级
type HSRiskLevel[4] byte
const HS_RL_Default = '0' // 默认型
const HS_RL_Keep = '1' // 保守型
const HS_RL_Cautions = '2' // 谨慎型
const HS_RL_Steady = '3' // 稳健型
const HS_RL_Active = '4' // 积极型
const HS_RL_Growth = '6' // 成长型
const HS_RL_Profession = "'99'" // 专业投资者
const HS_RL_Diy = "'100'" // 自定义风险等级

// 客户端ID类型
type HSAppIDType byte

// 客户端ID
type HSAppID [32]byte

// 认证码
type HSAuthCode [128]byte

// 客户端系统信息
type HSAppSysInfo [2000]byte

// 客户端系统信息采集完整度
type HSAppSysInfoIntegrity [2000]byte

// 客户端客户端系统信息采集异常标识类型
type HSAppAbnormalType byte

// 成交类型
type HSTradeType byte

// 调拨方向
type HSTransDirection byte
const HS_TD_In = '0' // 调入接入的中心
const HS_TD_Out = '1' // 从接入中心调出

// 汇率
type HSExchangeRate float64

// 场景
type HSOccasion [32]byte

// 状态
type HSStatus byte

// 类别
type HSType byte

// 标志
type HSFlag byte

// 风险
type HSRisk float64

// 证券类别
type HSStockType [5]byte

// 证券子类别
type HSSubStockType [5]byte

// 证券代码
type HSStockCode [7]byte

// 证券账户
type HSStockAccount [21]byte

// 证券名称
type HSStockName [33]byte

// 合约编号
type HSCompactID [33]byte

// 头寸属性
type HSCashGroupProp byte

// 成交状态
type HSTradeStatus byte
const HS_TDS_Traded = '0' // 成交
const HS_TDS_Abandoned = '2' // 废单
const HS_TDS_Confirmed = '4' // 确认

// 申购赎回状态
type HSEtfStatus byte
const HS_ES_BothForbid = '0' // 全部禁止
const HS_ES_BothAllow = '1' // 全部允许
const HS_ES_OnlyPurchase = '2' // 只能申购
const HS_ES_OnlyRedeem = '3' // 只能赎回

// Etf类别
type HSEtfType byte
const HS_ET_SingelExchEtf = '1' // 本市ETF
const HS_ET_CrossBorderEtf = '2' // 跨境ETF
const HS_ET_CrossExchEtf = '3' // 跨市ETF
const HS_ET_CurrencyEtf = '4' // 货币ETF
const HS_ET_PhysicalBondEtf = '5' // 实物债券ETF
const HS_ET_CommodityEtf = '6' // 商品ETF
const HS_ET_CashBondEtf = '7' // 现金债券ETF

// 担保状态
type HSCollateralStatus byte
const HS_COS_Normal = '0' // 正常
const HS_COS_Pause = '1' // 暂停
const HS_COS_Cancel = '2' // 作废

// 利率类别
type HSCreditRateType byte
const HS_CRT_MarginBuy = '1' // 普通融资利率
const HS_CRT_ShortSell = '2' // 普通融券利率
const HS_CRT_MarginBuyFine = '3' // 普通融资罚息
const HS_CRT_ShortSellFine = '4' // 普通融券罚息
const HS_CRT_SpeMarginBuy = '5' // 专项融资利率
const HS_CRT_SpeShortSell = '6' // 专项融券利率
const HS_CRT_SpeMarginBuyFine = '7' // 专项融资罚息
const HS_CRT_SpeShortSellFine = '8' // 专项融券罚息

// 合约类别
type HSCompactType byte
const HS_COT_MarginBuy = '0' // 融资合约
const HS_COT_ShortSell = '1' // 融券合约
const HS_COT_OtherDebit = '2' // 其他负债

// 合约来源
type HSCompactSource byte
const HS_COS_Public = '0' // 普通头寸
const HS_COS_Special = '1' // 专项头寸

// 报单分区
type HSOrderPartition int32
const HS_OP_Secu = "1" // 普通竞价
const HS_OP_SecuAfof = "2" // 普通盘后
const HS_OP_SecuCbp = "3" // 普通综合(证券创业板盘后固定价格业务的报单分区是该值)
const HS_OP_SecuHk = "4" // 港股通
const HS_OP_Crdt = "5" // 信用竞价
const HS_OP_CrdtAfof = "6" // 信用盘后
const HS_OP_CrdtCbp = "7" // 信用综合(融资融券创业板盘后固定价格业务的报单分区是该值)

// 资产属性
type HSAssetProp byte

// 会话编号
type HSSessionNo int32

// 系统节点编号
type HSSysnodeID int32

// 批次号
type HSBatchNo int32

// 交易所申报编号 
type HSOrderID [11]byte

// 合约编号串
type HSCompactIDStr [2001]byte

// 退市标志
type HSDelistFlag byte
const HS_DF_Normal = '0' // 正常
const HS_DF_Delist = '1' // 退市

// 通道类型
type HSChannelType byte
const HS_CNT_Normal = '0' // 无关
const HS_CNT_Of = '1' // 场内申赎
const HS_CNT_Afof = '2' // 盘后申赎

// 交易变动类型
type HSRealActionType byte
const HS_RA_TodayAdjustment = '0' // 存管调整
const HS_RA_Frozen = '1' // 交易冻结
const HS_RA_Unfrozen = '2' // 回报解冻
const HS_RA_Deposit = 'D' // 上账
const HS_RA_Withdrawal = 'W' // 下账
const HS_RA_Lock = 'L' // 锁定
const HS_RA_Unlock = 'U' // 解锁

// 业务标志
type HSBusinessFlag int32

// 报单辅助状态
type HSOrderAssStatus byte
const HS_OCR_OrderInserted = '0' // 报单已录入
const HS_OCR_OrderReported = '1' // 报单已申报
const HS_OCR_OrderConfirmed = '2' // 报单已被交易所确认
const HS_OCR_OrderTraded = '3' // 报单被交易所撮合成交
const HS_OCR_OrderAbandoned = '4' // 报单被交易所废单
const HS_OCR_CancelInserted = '5' // 撤单已录入
const HS_OCR_CancelReported = '6' // 撤单已申报
const HS_OCR_CancelConfirmed = '7' // 撤单已被交易所确认
const HS_OCR_CancelFailed = '8' // 撤单被交易所废单

// 股份性质
type HSStockProperty [3]byte

// 消息正文
type HSMsgBody [4000]byte

// 消息标题
type HSMsgTitle [256]byte

// 消息类型
type HSMsgType byte

// 时间(字符串格式)
type HSStrTime [32]byte

